<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // 字符匹配符  匹配集合中的任意一个字符
  // [xyz]  匹配集合中的任意一个字符   x|y|z
  // [0123456789]   => [0-9]  匹配数字
  // [qwertyuiopasdfghjklzxcvbnm] => [a-z] 匹配小写字母
  // [QWERTYUIOPASDFGHJKLZXCVBNM] => [A-Z] 匹配大写字母
  // [0-9a-zA-Z_]   匹配数字 大小写字母 下划线

  // 取反  ^在字符匹配符最前面中表示  取反
  // [^0-9]     匹配非数字
  // [^a-z]     匹配非小写
  // [^A-Z]     匹配非大写
  // [^0-9a-zA-Z_]   匹配非 数字 大小写字母 下划线

  // 注意: 在字符匹配中 ^ - [ ]  字符簇 转义字符 外,其他均为普通字符 [+*?{},]


  // 字符簇 (官方给定的集合)
  // \d    匹配数字     [0-9]
  // \D    匹配非数字   [^0-9]
  // \w    匹配数字 大小写字母 下划线  [0-9a-zA-Z_]
  // \W    匹配数字 大小写字母 下划线  [^0-9a-zA-Z_]
  // \s    匹配空白字符  [\n\r\f\t\v]
  // \S    匹配非空白字符  [^\n\r\f\t\v]
  // .     匹配除换行符(\n)以外的其他字符   [^\n]
  // [\u4e00-\u9fa5]  匹配中文


  // 用户名:由数字 大小写字母 下划线组成 6-12 且不能以数字开头  
  var user = "a123123";

  var reg = /^[0-9a-zA-Z_]{6,12}$/;     // 由数字 大小写字母 下划线组成 6-12
  var reg = /^[^0-9][0-9a-zA-Z_]{5,11}$/; // 且不能以数字开头   => 所有的非数字均可以
  var reg = /^[a-zA-Z_][0-9a-zA-Z_]{5,11}$/;  //  由数字 大小写字母 下划线组成 6-12 且不能以数字开头  
  var reg = /^[a-zA-Z_][\w$]{5,11}$/;  //  由数字 大小写字母 下划线组成 6-12 且不能以数字开头  
  var reg = /^[a-zA-Z_][\w\u4e00-\u9fa5$]{5,11}$/;  //  由数字 大小写字母 下划线组成 6-12 且不能以数字开头  

  console.log(reg.test(user));

    // 密码:由数字 大小写字母 下划线组成 6-12
    // var reg = /^[0-9a-zA-Z_]{6,12}$/;

    // 手机号: 纯数字,11位,以1开头 第二位(3456789)
    // var phone = "13386141517";
    // var reg = /^1[3-9]\d{9}$/;
    // console.log(reg.test(phone));




</script>

</html>